home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crosscountry USA Photo Safari
/
Crosscountry USA Photo Safari.iso
/
Data
/
cc_base
/
pak00_16bit_f.pk3
/
anim
/
adornment
/
chk_adorns.pl
Wrap
Perl Script
|
2003-11-21
|
2KB
|
107 lines
#!/usr/bin/perl
use strict;
use IO::Dir;
use IO::File;
main();
sub main {
my $dir = IO::Dir->new('.');
if (!$dir) {
die "Huh?? can't open '.' to get a directory listing!\nError: $!\n";
}
my $dir_entry;
while ($dir_entry = $dir->read) {
next if $dir_entry =~ /^\.\.?$/;
next if $dir_entry =~ /^CVS/i;
next if ! -d $dir_entry;
verify_flickers($dir_entry);
}
$dir->close;
print "Hit enter to quit\n";
<stdin>;
}
sub verify_flickers {
my ($dirname) = @_;
my $flicker_dir = IO::Dir->new($dirname);
if (!$flicker_dir) {
print "Huh?? can't open '$dirname' to get a directory listing!\nError:$!\n";
return;
}
my $dir_entry;
my %codes = (
'rds' => '',
'rdw' => '',
'rns' => '',
'rnw' => '',
'lds' => '',
'ldw' => '',
'lns' => '',
'lnw' => '',
);
print "$dirname\n";
while ($dir_entry = $flicker_dir->read) {
next if $dir_entry =~ /^\.\.?$/;
next if $dir_entry =~ /^CVS/i;
next if -d $dir_entry;
if ($dir_entry =~ /${dirname}_(...)/) {
$codes{$1} = $dir_entry;
}
}
for my $code (sort keys %codes) {
if ($codes{$code} eq '') {
print "\t", $code, " missing\n";
} else {
print "\t", $code, " found";
if ($codes{$code} =~ /\.a$/i) {
print " (alias to: ";
my $fh = IO::File->new($dirname . '/' . $codes{$code});
if (!defined($fh)) {
print "??";
} else {
my $filename = <$fh>;
chomp($filename);
print $filename;
$fh->close;
}
print ")";
# not an alias
} else {
$codes{$code} =~ s/\.pcx$//gi;
$codes{$code} =~ s/\.jpg$//gi;
$codes{$code} =~ s/\.an1$//gi;
$codes{$code} =~ s/\.an2$//gi;
$codes{$code} =~ s/\.anm.p$//gi;
$codes{$code} =~ s/_[0-9]+//gi;
my $prop_name = $dirname . '/' . $codes{$code} . ".anm.p";
if (! (-e $prop_name) ) {
print " $prop_name missing";
# create the missing .anm.p file here
my $fh = IO::File->new($prop_name, "w");
$fh->print("{}");
$fh->close;
}
}
print "\n";
}
}
$flicker_dir->close;
}
__END__